The present invention owes its existence to years of effort in bringing low cost and simplicity to the design of data acquisition and representation systems. It began as an adaptation of video arcade game technology to the needs of low cost medical instrumentation.
The all-important video display underwent further refinements, leading to a patented vector generator built with low cost, standard D/A converter arrays. This vector generator is described in U.S. Pat. No. 4,649,506 entitled "Vector Generator Using Interpolative Analog Circuits."
Particular emphasis was then given to circuits capable of offloading functions from the software for true real-time performance. A number of digital and analog peripheral circuits were developed for the purpose. Some of them addressed the special problem of pattern recognition and were described in U.S. Pat. No. 4,809,222 entitled "Associative and Organic Memory Circuits and Methods."
More recently attention was given to the need to configure the present invention as an array of multiprocessing units. U.S. Pat. No. 4,984,176, entitled the VDH Biocomputer describes a method of using dual-ported cache memories that can be shared by one or more processors. It also introduces a brand of software with a simplified syntax and a "dispatcher" routine whose effect is to maintain good visibility regardless of scale.
The latest efforts have served to further identify the key relationships between functional blocks in relation to intelligent computing.
The standard CPU consists of circuits to fetch instructions, move data, implement branching instructions and perform additions, subtractions and a few control and Boolean logic operations. The movement of data between the CPU and memories and circuits external to it usually involves more than one instruction cycle. Arithmetic operations more complex than additions and subtractions and mathematical functions must be implemented in software, in which case they require many instruction cycles; or they must be implemented in external circuit blocks, in which case relatively cumbersome and time-consuming protocols (i.e., additional procedures to establish contact) are often involved. Since the number of memory locations that the CPU accesses through its address bus is limited, an often inordinate amount of time is spent accessing external solid-state or disk memories. The activity of the CPU is thus characterized by many small steps and delays. Each step is also reflected in the software, which grows very rapidly in size and complexity. Unless special programming techniques--and a lot of discipline--are used, a point is soon reached where software problems become intractable. It is no surprise that the scope and size of a computer system is limited by the software, not the hardware.
The greatest challenge is to find efficient methods of dealing with the real world, where inexact quantities and approximations must be used. Methods of "fuzzy" computation have been available for some time to deal with this problem. They are not necessarily efficient. Another requirement includes dealing with real-life, variable objects. This has traditionally been done by using numbers to represent objects. These numbers then become symbols, the equivalent of names. But this, in itself, is not enough, since real objects must also be recognized as belonging to a name or symbol despite individual variations. The ability to recognize a sameness in different objects calls for intelligence: each object must pass certain tests to determine whether it has the required qualities or features. Ordinary computers do not have the necessary means or power.
A number of inventions are already on record which describe a CPU or other processor that includes enhanced computational elements, notably multipliers, instead of or in addition to the traditional ALU (Arithmetic Logic Unit). This is especially useful for Fourier and other transformations, but does not go far enough for intelligence as defined in the preceding paragraph.